[レポート] SaaSアプリケーションの次世代設計について学ぶ「Next generation SaaS: Scale, resilience, and operational efficiency」 #PEX304
いわさです。
AWS re:Invent 2024 のブレークアウトセッションである 「Next generation SaaS: Scale, resilience, and operational efficiency (PEX304)」が YouTube で公開されていたので視聴しました。
内容をレポートします。
セッション動画
セッションの概要
re:Invent 2024 公式サイトのセッション概要がこちら(Amazon Translate 訳)
マルチテナント型の SaaS ビルダーは、スケーリング、レジリエンス、自動化、運用効率といった一連の課題に取り組む必要があります。
ツールは存在しますが、今こそ「次は何か?」と問いかける時です。AWS パートナー向けのこのセッションでは、現在の境界を超える新しいマルチテナントアーキテクチャと運用戦略について概説します。
収集する必要のあるデータ、収集すべき洞察、新しいツールやメカニズムについて詳しく見ていきましょう。
マルチテナント運用への新しいアプローチを探求し、ジェネレーティブAIが、SaaSビジネスの運用プロファイルに影響を与えるスケーリング、レジリエンス、隔離、階層化ポリシーのビューをどのように豊かにするかを見ていきます。このセッションは AWS パートナーを対象としています。
スピーカー
- Bill Tarr, Principal Partner Solutions Architect, AWS
- Jon Topper, CEO, The Scale Factory
本セッションのポイントを抜粋
このセッションでは次のような SaaS の課題に関して Bill Tarr と jon Topper が交互に新しいアプローチを紹介していました。
個人的に「次世代のSaaS」と言われても生成AI以外あまりピンと来ていなかったのでどういう要素があるのか気になるところでした。
以下のカテゴリでそれぞれ Next gen 要素が紹介されていますのでそのあたりのポイントだけ抜粋して紹介します。
- セルベースアーキテクチャとコントロールプレーン
- デジタルツインと Temporal Cloud を組み合わせて複雑な DevOps を管理
- Karpenter と用いた EKS スケーリング管理
- リレーショナルデータベースの取り扱い
- 生成 AI
セルベースアーキテクチャとコントロールプレーン
ワーナーのキーノートでも紹介されていましたが、セルベースアーキテクチャを推進する流れなんですかね?色々なセッションで推奨されているようなメッセージを感じます。
同一のインフラストラクチャ上にテナントを配置すると、特定のインシデントが全てのテナントに影響を与えてしまう問題があるので、テナントの規模や重要度に応じて柔軟にテナントを管理する必要があります。
ここでセルベースアーキテクチャを採用することで、その影響範囲を最小化することが出来ます。
ただし、SaaS にこれを採用しようとするとテナントとセルの動的な管理と最適化が必要になります。
Next gen としてコントロールプレーンにセル管理コンポーネントを追加するアプローチが紹介されていました。
テナント管理とセル管理をコントロールプレーンで自動化することで、セルの作成や変更、テナント再配置などを柔軟に行いましょうというアプローチですね。
まぁ確かにという感じです。特に再配置などは実装は簡単ではなさそうですが。
SaaS on AWS でのセルベースアーキテクチャは以前から言及されていましたが、改めてコントロールプレーンのコンポーネントとして明確にはいってきましたね。
デジタルツインと Temporal Cloud を組み合わせて複雑な DevOps を管理
様々な DevOps ツールが関わることで追跡・管理が複雑になることが課題として挙げられています。
構成管理・デプロイ・ユーザー管理など様々な機能を DevOps ツールで実現することが多いためです。
これはなるほど確かにありえるなぁという感じです。
Next gen のアプローチとして 2 点紹介されていました。
ひとつめはデジタルツインの概念を導入する点です。
デジタルツインとは、実際のシステムの状態を仮想的に表現し、管理する仕組みのことです。
SaaS アプリケーションの場合、コントロールプレーンにこのデジタルツインを持つことで、アカウントの作成・セル管理・テナントプロビジョニングなど、アプリケーションの状態を一元的に把握出来るようになると述べられています。
概念やメリットはわかりますが、具体的な実装イメージについてはもう少し補足情報を集めたいところです。
また、既存の DevOps ツールと TemporalCloud のようなサービスを組み合わせることで複雑性を管理するアプローチについても紹介されていました。
Temporal Cloud を私は存じておりませんでしたが、マイクロサービスをワークフローベースで管理出来るサービスのようです。
Step Functions でも出来そうな気もしますが、このセッションではデジタルツインと Temporal Cloud を活用して DevOps の複雑性を解消するというアプローチが紹介されていました。
Karpenter と用いた EKS スケーリング管理
テナントにあわせた効果的なスケーリングが重要になりますが、使用量を動的に増減させたり、あるいは費用対効果の最適化が必要になります。
Next gen なアプローチとして Karpenter と活用した EKS のスケーリングと費用管理について紹介されていました。
Karpenter は Kubernetes クラスターのオートスケーラーです。
アプリケーションの状況にあわせて適切なノードサイズ選択が可能です。
また、ASG 経由でのスケーリングではないため、ノードのサイズ変更や統合なども自動的に行うことが出来ます。
リレーショナルデータベースの取り扱い
リレーショナルデータベースをマルチテナントで使う場合に既知の課題(コネクション管理、テナント分離、スケーラビリティ)がありますが、それらに対する AWS の新しい機能を使ったアプローチが紹介されていました。
ひとつめは Aurora Serverless の Data API 機能です。
この機能をうまく活用することでマルチテナント環境におけるコネクション管理の負担を軽減出来るとのこと。
あまり私は活用出来ていなかったのですが有効なのかな。
アップデート情報を見てみると、確かに V1 のころと違ってレート制限なども無いらしく、色々と改善されていそうです。
ふたつめですが、Neon が紹介されていました。
Neon は開発者体験を重視しているオープンソースの PostgreSQL データベースソリューションです。
バージョン管理や、テナントごとのデータ管理などを行う機能があり、マルチテナント環境における適合性が高いと評価されているようです。
みっつめですが、Aurora Limitless Database が紹介されていました。
去年の re:Invent でプライベートプレビューとして発表され、昨月ついに GA となったサービスですね。
テナント増加に合わせてデータベースのシャーディングを検討したくなることがあると思います。
本セッションではマルチテナント環境において、シャーディング管理を自動化出来るソリューションとして紹介されました。
一方で DSQL については触れられていませんでした。
生成 AI の活用
最後に、ここは予想していましたが生成 AI の活用について触れられていました。
オブザーバビリティプラットフォームである「Homeycomb」の生成 AI 活用事例(自然言語でのクエリ生成機能など)を紹介しつつ、マルチテナント環境での生成 AI 活用方法が紹介されました。
これはイメージがつきやすいと思いますが、各テナントの問い合わせ履歴をナレッジベースとして蓄積し、テナント固有のコンテキストを反映したレスポンスを生成する方法を紹介しています。
詳しい実装方法までは触れておらず、生成 AI を活用したユーザー体験の改善や、テナント固有の価値を提供することが Next gen というところまで紹介されていました。
さいごに
本日は SaaSアプリケーションの次世代設計について学ぶ「Next generation SaaS: Scale, resilience, and operational efficiency」の内容をレポートさせて頂きました。
興味を持っていただけた方は是非 YouTube のアーカイブ動画も見てみてください。
生成 AI の話は入ってくるだろうなぁと思っていましたが、それよりもセルベースアーキテクチャやデータベース周りの話が意外に多くて良かったですね。
ただ、「次世代」というほど大きく今までから考え方が変わるようなものではありませんでした。
セルベースアーキテクチャの話は SaaS on AWS としては以前からよく登場していたと思いますが、ワーナーのキーノートをはじめ、セルベースアーキテクチャの関心が高まっている(高めている?)感じなんですかね。他の SaaS セッションなどでもセルベースアーキテクチャは登場していました。
データベースに関してはまだ Aurora Limitless Serverless は評価しきれていなかったのですが、確かにテナントシャーディングで考えるととマルチテナントSaaSにおける分離と相性が色々良さそうなんですよね。
扱いや設計が難しそうな反面、マネージドなシャーディング機能は今後注目されそうだなと思いました。